/*--------------------------------------------------------------------------
  Project::MONDIALI SCI ALPINISMO
  Package::FSM
  Class::FSM
  File FSM.h
  --------------------------------------------------------------------------
  * METHODS AND CLASS PARAMETERS


  --------------------------------------------------------------------------
  * FUNCTIONS DESCRIPTION
  
	...

  --------------------------------------------------------------------------
  * COPYRIGHT

  --------------------------------------------------------------------------
  * INFO ABOUT AUTHOR AND VERSIONS
  Author:	Tino Giorgio	Data: 
  Rev1:			Data:

  --------------------------------------------------------------------------
  * E-MAIL & CONTACTS

  GIORGIO TINO:	tinoshi@libero.it
	           	shapeofangels@hotmail.com
	            giorgio.tino@studenti.polito.it

  --------------------------------------------------------------------------*/

#if !defined(AFX_FSM_H__854E94CB_1003_43CA_BADD_78581BDF80AB__INCLUDED_)
#define AFX_FSM_H__854E94CB_1003_43CA_BADD_78581BDF80AB__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "EventList.h"

/* States definition */
typedef enum {INIT_INTRO,INIT_RUNNING} init_state; // for intro
typedef enum {RUN_CREATE_NEW_LAND, RUN_LOAD_LAND, RUN_CREDITS, RUN_EXIT} run_state; // for run 

class FSM  
{
public:
	FSM();
	FSM(EventList *el); // pointer to the shared event list
	virtual ~FSM();
    
    void loop(); // update Finite State Machine
};

#endif // !defined(AFX_FSM_H__854E94CB_1003_43CA_BADD_78581BDF80AB__INCLUDED_)
